Non-volatile memory (NVM) in the form of one time programmable (OTP) memory devices are employed for purposes of programming of a general purpose circuit with custom software and settings for a dedicated purpose. A general purpose circuit with an unprogrammed NVM device is typically configured by NVM programming for use in a given type of electronic component (e.g., television tuner, cell phone, etc.), The NVM on the device is programmed with software and settings that are appropriate for the end use application of the given electronic component. However, it is possible for the NVM device of a general purpose circuit to be programmed by accidental application of voltage to the NVM device, which may render the general purpose circuit useless for a specific dedicated purpose when the accidental programming of the NVM device results in permanent reconfiguration of the integrated circuit. Such an accidental programming event may occur during production testing of a general purpose circuit or even after its assembly into an electronic component or one of its subassemblies. In either case, it may be impossible to correct the programming error, and the general purpose circuit may be rendered useless. In the event a general purpose circuit is accidentally programmed after installation into a given type of electronic component or one of its subassemblies, the electronic component or subassembly may need to be destroyed or recycled. Hot insertion of a part or power up without a valid reset are two examples of conditions during which accidental programming of a NVM device may occur.
FIG. 1 shows conventional programmable NVM circuitry 100 of a general purpose integrated circuit that includes a NVM device 102 coupled to receive programming voltage (Vpp) from an external pin 108 via a NVM programming switch M1 (e.g., MOSFET device such as P-FET) that is controlled by processing circuitry 104 (e.g., microprocessor, CPU, etc.). Power supply pin 130 is present to provide supply voltage (e.g., 3.3 volts) via conductive path 132 to circuitry components of the general purpose integrated circuit during normal operating conditions. Processing circuitry 104 is also coupled as shown to exchange data with NVM device 102 and with external digital I/O pin 110. To program NVM device 102, NVM programming data 112 is supplied to processing circuitry 104 via digital I/O pin 110, and a programming voltage Vpp (e.g., 5 volts) that is applied to pin 108. Software and/or hardware of processing circuitry 104 responds to enable NVM programming by providing NVM programming data 114 to NVM device 102 and by supplying a programming enable signal 116 to gate NVM programming switch M1 so that the programming voltage (Vpp) is applied to NVM device 102 by conductive path 118 simultaneously with the NVM programming data 114. Upon application of programming voltage Vpp, programming data 114 is written into NVM device 102.
The programming voltage Vpp is an elevated voltage level that is applied for a relatively short period of time to pin 108 only for intended programming of NVM device 102. Even though the normal supply voltage (e.g., 3.3 volts) is less than the required programming voltage (e.g., 5 volts) for the NVM device 102, it may nonetheless cause unintended programming of NVM device 102 over a longer period of time if it is present at pin 108 and NVM programming switch M1 fails to isolate gate NVM device 102 from pin 108. Further, even voltages that are lower than the normal supply voltage (such as voltages greater than about 1.4 volts) may cause unintended programming of NVM device 102.